It is becoming more commonplace for consumers of multimedia content to share content amongst a variety of networked electronic devices. In one widely adopted technique content or media is streamed from a customer premises gateway or set top box to devices such as televisions, PCs, tablets and smart phones. A number of different streaming media protocols may be used to deliver the content, some of which may be characterized as adaptive streaming protocols and others which may be characterized as non-adaptive streaming techniques. In adaptive streaming the content or media program is divided into segments or chunks which may vary in duration but are often about two-ten seconds in length. The content server publishes a playlist or high level manifest file that is accessible to the client device. The manifest file includes a list of URIs (“Universal Resource Identifiers”) to media segments that make up the program. The playlist or high level manifest file identifies multiple sets of video streams for a media program, such as a movie, a television program, etc., where each set of video streams has unique encoding parameters (e.g., bit rates, resolutions, etc.) for the media program. In one variation, the high level manifest points to another set of manifest files which contain actual media URIs with various bit rates. The client device may dynamically switch between the sets of video streams identified in the high level manifest file as the sets of video streams are transmitted from the content server to the client device. The client device may choose to receive an initial set of video streams identified in the high level manifest file based on initial network conditions, initial buffer conditions, etc.
In contrast to adaptive streaming, non-adaptive streaming employs a static version of a media stream that is requested by the client device. The client device thus generally requests a static Uniform Resource Identifier (URI) for streaming.
A customer premises gateway or set-top box may serve different streaming media to multiple client at the same time using different streaming media techniques and protocols. The number of streams that can be delivered at any one time is limited by the availability of network bandwidth and the computing resources of the gateway or set-top box that are used to process the streaming media.